/**
 * 
 * merge level=20
 * 
 * 主控 tabPanel
 */

Ext.define('Jfok.view.region.MainRegion', {
	extend : 'Ext.tab.Panel',
	alias : 'widget.mainregion',

	// requires : ['Ext.ux.TabCloseMenu', 'Ext.ux.TabReorderer'],
	closeAction : 'hide',
	autoDestroy : false,
	tabPosition : 'top',
	plugins : [{

		ptype : 'tabclosemenu',
		closeAllTabsText : '关闭所有',
		closeOthersTabsText : '关闭其他',
		closeTabText : '关闭',

		extraItemsTail : ['-', {
					text : '可关闭',
					itemId : 'canclose',
					checked : true,
					hideOnClick : false,
					handler : function(item) {
						item.ownerCt.tabPanel.tab.setClosable(item.checked);
					}
				}, '-', {
					text : '登录时自动打开',
					itemId : 'autoopen',
					checked : false,
					hideOnClick : false,
					handler : function(item) {
						if (item.checked)
							Jfok.system.addModuleToAutoOpen(item.ownerCt.tabPanel.moduleName);
						else
							Jfok.system
									.deleteModuleToAutoOpen(item.ownerCt.tabPanel.moduleName);
					}
				}, '-', {
					xtype : 'fieldcontainer',
					items : {
						xtype : 'numberfield',
						fieldLabel : '最多打开Tab数',
						itemId : 'maxtab',
						width : 156,
						value : 8,
						maxValue : 20,
						minValue : 3,
						listeners : {
							change : function(field , newValue , oldValue ){
								Jfok.system.setMaxTab(newValue);
							}
						}
					}
				}],
		listeners : {
			beforemenu : function(menu, tabPanel) {
				// 此插件有bug,需要加入这个参数
				menu.tabPanel = tabPanel;
				menu.down('#canclose').setChecked(tabPanel.tab.closable);

				// 如果是有parentFilter的模块，那么自动打开的菜单条隐掉 ，上面的'-'也隐掉
				menu.down('#autoopen').setVisible(!tabPanel.parentModuleName);
				menu.down('#autoopen').previousSibling()
						.setVisible(!tabPanel.parentModuleName);

				menu.down('#autoopen').setChecked(Jfok.system
						.isModuleAutoOpen(tabPanel.moduleName));
				menu.down('#maxtab').setValue(Jfok.system.getMaxTab());
			}
		}
	}, Ext.create('Ext.ux.TabReorderer')],

	initComponent : function() {
		this.items = [{
					title : '系统首页',
					border : true,
					frame : false,
					bodyCls : 'panel-background',
					reorderable : false,
					icon : 'images/button/homepage.png',
					layout : 'fit',
					items : [{
								xtype : 'homepagepanel',
								border : false,
								frame : false
							}]
				}];
				
			this.listeners  = {
				add : function( panel, component, index, eOpts ){
					if (panel.items.length > Jfok.system.getMaxTab()){
						panel.remove(1);
					}
				}
			}
				
		this.callParent(arguments);
	}

})